
  let clickOutside =''  // 在指令外部定义
  import moment from 'moment'
//  自定义指令封装
export default {
  errorimg: {
    // 生命周期只执行一次，后面更新其他问题也要解决
    //  图片img没有src，他不会报错，也要给默认图片
    inserted(dom, obj) {
      //  图片有src，就用src，没有就使用默认图片
      //  如果图片加载出问题，指定头像
      dom.src = dom.src || obj.value || require('@/assets/common/head.jpg')
      //  图片出错了，这是监听函数，执行一次后一直存在
      dom.onerror = () => {
        //  图片加载出错执行
        //  错了就给一个默认图片
        dom.src = obj.value || require('@/assets/common/head.jpg')
      }
    },
    //  当指令所在组件有更新且更新完成后执行
    componentUpdated(dom) {
      dom.src = dom.src || obj.value || require('@/assets/common/head.jpg')
    }
  },

  // 作用：点击某个dom区域外作出一些事件处理
  clickOutside: {
    inserted(dom, obj) {
      clickOutside = (e) => {
        // 点击当前指令所在dom区域外才执行相应方法
        // 当前点击的dom是否属于指令所在dom内
        // 指令所在dom包含点击的dom  contains
        // console.log('clickOutside')
        // e.target就是当前点击的dom
        if (!dom.contains(e.target)) {
          obj.value()
        }
      }
      document.addEventListener('click', clickOutside)
    },
    unbind() {
      document.removeEventListener('click', clickOutside)
    }
  },
  


  // 定义一个自定义指令用于时间转换处理
  formatTime: {
    // moment插件使用： 1：安装  2：导入  3：转换  moment(时间).format('YYYY-MM-DD')
    inserted (dom, obj) {
      dom.innerHTML = moment(obj.value).format('YYYY-MM-DD')
    },
    componentUpdated (dom, obj) {
      dom.innerHTML = moment(obj.value).format('YYYY-MM-DD')
    }
  }

}
